package com.imax.center.service;

import com.imax.center.model.*;

import java.util.List;

/**
 * 设备服务接口
 */
public interface DeviceService {
    /**
     * 获取萤石云平台的设备列表
     *
     * @return 设备列表
     */
    List<EzvizDevice> getAllDeviceList();

    /**
     * 获取萤石云平台的通道列表
     *
     * @return 通道列表
     */
    List<EzvizChannel> getAllChannelList();
    
    /**
     * 获取萤石云设备的预览或回放URL
     *
     * @param deviceSerial 设备序列号
     * @param channelNo 通道号，默认为1
     * @param type 地址类型，1-预览，2-本地录像回放，3-云存储录像回放，默认为1
     * @param startTime 开始时间，回放时使用，格式：yyyy-MM-dd HH:mm:ss
     * @param stopTime 结束时间，回放时使用，格式：yyyy-MM-dd HH:mm:ss
     * @param playbackSpeed 回放速度
     * @return 设备URL信息
     */
    EzvizDeviceUrl getDeviceUrl(String deviceSerial, Integer channelNo, Integer type, 
                               String startTime, String stopTime, Integer playbackSpeed);
                               
    /**
     * 批量获取萤石云设备的预览或回放URL
     *
     * @param batchRequest 批量获取设备URL的请求
     * @return 批量设备URL信息
     */
    EzvizBatchDeviceUrlResponse getBatchDeviceUrls(EzvizBatchDeviceUrlRequest batchRequest);
    
    /**
     * 萤石云设备抓拍图片
     *
     * @param deviceSerial 设备序列号
     * @param channelNo 通道号，默认为1
     * @return 设备抓拍图片URL
     */
    String captureDeviceImage(String deviceSerial, Integer channelNo);
} 